# Methods added to this helper will be available to all templates in the application.
module ApplicationHelper
  def admin?
    role = session[:user_id] ? current_user.role : ''
    role ||= ''
    role.include?('A')
  end
  def user_type_name(t)
    i= t ? t.to_i-1 : 0
    utypes=  ['ประชาชน','ผู้บริหาร อปท.','ข้าราชการ อปท.','ข้าราชการสังกัดอื่น','นักเรียน / นักศึกษา']
    utypes[i]
  end
  def required
    "<span style='color:red'> *</span>"
  end
  def amphoe_name(lao)
    a= Amphoe.find_by_code(lao[0,4])
    a.prefix+a.th if a
  end
  def province_name(lao)
    "จังหวัด"+Province.find_by_code(lao[0,2]).th
  end
  def tambon(s)
    Tambon.find_by_code(s).name.sub('ตำบล','')
  end
  def amphoe(s)
    Amphoe.find_by_code(s).th
  end
  def province(s)
    Province.find_by_code(s).th
  end
  def date_select_thai(obj, method, existing_date=nil)
    #dd = existing_date=={} ? dd= DateTime.new(existing_date[:y].to_i, existing_date[:m].to_i, existing_date[:d].to_i) : Date.today
    dd= existing_date ? existing_date : Date.today
    html = "<SELECT id='#{obj}_#{method}_3i' name='#{obj}[#{method}(3i)]'>"
    1.upto(31) do |d|
      html += "<OPTION #{'selected' if d==dd.day}>#{d.to_s.rjust(2, '0')}&nbsp;&nbsp;</OPTION>"
    end
    html += "</SELECT>"
    html += "<SELECT id='#{obj}_#{method}_2i' name='#{obj}[#{method}(2i)]'>"
    1.upto(12) do |m|
      html += "<OPTION value='#{m}' #{'selected' if m==dd.month}>#{MONTHS[m-1]}</OPTION>"
    end
    html += "</SELECT>"
    y_start = dd.year-2
    y_end= dd.year+2
    html += "<SELECT id='#{obj}_#{method}_1i' name='#{obj}[#{method}(1i)]'>"
    y_start.upto(y_end) do |y|
      html += "<OPTION value='#{y}' #{'selected' if y==dd.year}>#{y+543}</OPTION>"
    end
    html += "</SELECT>"
  end
  def date_thai(d=Time.now, option={})
    return "N/A" unless d
    y = d.year+543
    if option[:short]
      y -= 2500
      mh= ['ม.ค.', 'ก.พ.', 'มี.ค.', 'เม.ย.', 'พ.ค.', 'มิ.ย.', 'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', 'พ.ย.', 'ธ.ค.']
    else
      mh = %w(มกราคม กุมภาพันธ์ มีนาคม เมษายน พฤษภาคม มิถุนายน กรกฎาคม สิงหาคม กันยายน ตุลาคม พฤศจิกายน ธันวาคม)
    end
    if option[:time]
      t= "เวลา"+sprintf(" %02d:%02d น.",d.hour,d.min)
    else
      t= ""
    end
    if option[:ps]
      "#{d.day} #{mh[d.month-1]} พ.ศ. #{y} #{t}"
    else
      "#{d.day} #{mh[d.month-1]} #{y} #{t}"
    end
    #d.day.to_s+" "+mh[d.month-1]+" "+y.to_s
  end
  def utf8(t)
    begin
      cd = Iconv.new("UTF-8", "TIS-620")
      cd.iconv(t)
    rescue
      t
    end
  end
  def tis620(t)
    cd = Iconv.new("TIS-620", "UTF-8")
    cd.iconv(t)
  end
  def align_img(s, pixel=3)
    "<span style='position:relative; top:#{pixel}px;'>#{s}</span>"
  end
  def align_text(s, pixel=3)
    "<span style='position:relative; top:-#{pixel}px;'>#{s}</span>"
  end

  def cal_color(c_day, station_id)
    color = "#FFFFFF"
    a_s = StationSlot.count(:conditions=>["book_date=? AND station_id=?", c_day, station_id])
    f_s = StationSlot.count(:conditions=>["book_date=? AND station_id=? AND s_status=?", c_day, station_id, "Free"])
    if a_s>0
      color = "#3ADF00"
      if f_s==0
        color = "#FA5858"
      end
    end
    return color
  end

  def total_slot(c_day, station_id)
    a_s = StationSlot.count(:conditions=>["book_date=? AND station_id=?", c_day, station_id])
    return a_s
  end

  def used_slot(c_day, station_id)
    u_s = StationSlot.count(:conditions=>["book_date=? AND station_id=? AND s_status!=?", c_day, station_id, "Free"])
    return u_s
  end
end
